﻿using Entities;
using Entities.Modelo;
using System.Data.Objects.DataClasses;
using System;
using System.Collections.Generic;

namespace DataAccessLayer
{
    public class AcessoDados<T>
    {
        private GICMC_dataBaseEntities1 dataContext = new GICMC_dataBaseEntities1();

        //public string NomeEntidade
        //{
        //    get
        //    {
        //        T entidade = Activator.CreateInstance<T>();
        //        return entidade.GetType().Name;
        //    }

        //}

        //public T GetById(int id)
        //{
        //    using (dataContext = new GICMC_dataBaseEntities1())
        //    {
        //        var entidade = (from e in dataContext.CreateQuery<T>(NomeEntidade)
        //                        where e.Id == id
        //                        select e).FirstOrDefault();
        //        return entidade;
        //    }
        //}

        //public List<T> GetAll()
        //{
        //    using (dataContext = new GICMC_dataBaseEntities1())
        //    {
        //        var entidade = from e in dataContext.CreateQuery<T>(this.NomeEntidade)
        //                       select e;
        //        return entidade.ToList();
        //    }
        //}

        //public void Criar(T entidade)
        //{
        //    using (dataContext = new GICMC_dataBaseEntities1())
        //    {
        //        dataContext.AddObject(NomeEntidade, entidade);
        //        dataContext.SaveChanges();
        //    }
        //}

        //public void Atualizar(T entidade)
        //{
        //    using (dataContext = new GICMC_dataBaseEntities1())
        //    {
        //        var original = (from e in dataContext.CreateQuery<T>(NomeEntidade)
        //                        where e.Id == entidade.Id
        //                        select e).FirstOrDefault();
        //        dataContext.ApplyPropertyChanges(original.EntityKey.EntitySetName, entidade);
        //        dataContext.SaveChanges();
        //    }
        //}

        //public void Excluir(int id)
        //{
        //    using (dataContext = new GICMC_dataBaseEntities1())
        //    {
        //        var entidade = this.GetById(id);
        //        dataContext.DeleteObject(entidade);
        //        dataContext.SaveChanges();
        //    }
        //}
    }
}
